home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
infoplus.zip
/
PAGE_02.INC
< prev
next >
Wrap
Text File
|
1990-06-25
|
2KB
|
81 lines
procedure page_02;
var
cpu_info : cpu_info_t;
procedure showNDP(a : string; b : word);
begin
writeln(a);
caption2(' Infinity');
case b and $1000 of
$0000 : writeln('projective');
$1000 : writeln('affine')
end;
caption2(' Rounding');
case b and $0C00 of
$0000 : writeln('to nearest or even');
$0400 : writeln('down');
$0800 : writeln('up');
$0C00 : writeln('chop')
end;
caption2(' Precision');
case b and $0300 of
$0000 : writeln('24 bits');
$0100 : writeln('(reserved)');
$0200 : writeln('53 bits');
$0300 : writeln('64 bits')
end
end;
begin (* procedure page_02 *)
caption2('CPU');
CPUID(cpu_info);
with cpu_info do begin
case cpu_type of
$00 : writeln('8088');
$01 : writeln('8086');
$02 : writeln('V20');
$03 : writeln('V30');
$04 : writeln('80188');
$05 : writeln('80186');
$06 : writeln('80286');
$07 : writeln('80386');
$08 : Writeln('80486')
else
unknown('CPU', cpu_type, 2)
end;
case cpu_type of
$06..$08 : begin
caption3('Machine State Word');
writeln(hex(MSW, 4));
caption3('Global Descriptor Table ');
for i:=1 to 6 do
write(hex(GDT[i], 2), ' ');
writeln;
caption3('Interrupt Descriptor Table');
for i:=1 to 6 do
write(hex(IDT[i], 2), ' ');
writeln
end
end;
caption3('Interrupts acknowledged immediately after segment register'
+ ' change');
yesorno(intflag);
caption2('Coprocessor');
if cpu_type = $08 then
showNDP('80486', ndp_cw) {'486 has coprocessor built in}
else
case ndp_type of
$00 : writeln('none');
$01 : showNDP('8087', ndp_cw);
$02 : showNDP('80287', ndp_cw);
$03 : showNDP('80387', ndp_cw)
else
unknown('coprocessor', ndp_type, 4)
end
end;
caption2('Coprocessor enabled');
yesorno(equip and $0002 = $0002)
end;